A Concurrent Dictionary and Wait-Free Queue from Compare and Swap

نویسنده

  • William Morriss
چکیده

This paper describes algorithms for a lock-free dictionary and a waitfree queue. The queue improves on a previous result by Kogan and Petrank by not requiring Stop-The-World Garbage Collection. The lock-free dictionary is structured as a multi-level hash table to avoid global resize. It can be made wait-free for most practical key types with trivial modifications. The dictionary supports sequentially consistent compare and swap operations in addition to exchange and put, but does not support removal. It was over 3 times faster than a previous concurrent multi-level hash table result. The data structures in this paper expect a compare and swap primitive, found in many commodity architectures including x86, x64, and Itanium.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Concurrent Wait-Free Red Black Trees

We present a new wait-free algorithm for concurrently accessing a red-black tree in an asynchronous shared memory system that supports search, insert, update and delete operations using single-word compare-and-swap instructions. Search operations in our algorithm are fast and execute only read and write instructions (and no atomic instructions) on the shared memory. The algorithm is obtained th...

متن کامل

Transparent Support for Wait-Free Transactions

This paper concerns software support for non-blocking transactions in shared-memory multiprocessors. We present mechanisms that convert sequential transactions into lock-free or wait-free ones. In contrast to some previous mechanisms, ours support transactions for which the set of memory locations accessed cannot be determined in advance. Our implementations automatically detect and resolve con...

متن کامل

A Practical Wait-Free Multi-Word Compare-and-Swap Operation

Algorithms designed for current and future multi-core systems, which are expected to experience an increase of the number of cores by 100x over the next decade, must exhibit strong scaling. The guarantee of progress provided by wait-free algorithms and the fine-grained synchronization methods used in their designs, make them desirable for achieving this goal. However, the design and development...

متن کامل

Is Compare-and-Swap Really Necessary?

The consensus number of a synchronization primitive, such as compare-and-swap or fetch-and-add, is the maximum number of processes n among which binary consensus can be solved by using read-write registers and registers supporting the synchronization primitive. As per Herlihy’s seminal result, any synchronization primitive with consensus number n can be used to construct a wait-free and lineari...

متن کامل

Efficient Transformations of Obstruction-Free Algorithms into Non-blocking Algorithms

Three well studied progress conditions for implementing concurrent algorithms without locking are, obstruction-freedom, non-blocking and wait-freedom. Obstruction-freedom is weaker than non-blocking which, in turn, is weaker than wait-freedom. While obstruction-freedom and non-blocking have the potential to significantly improve the performance of concurrent applications, wait-freedom (although...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015